package org.esti.service;

import org.esti.model.Interview;
import org.esti.model.InterviewResult;

import java.util.List;

/**
 * @author Artem Loginov (logart)
 */

/**
 * Provide access to interviews and all action on it.
 */
public interface InterviewService {
    /**
     * return all user interview
     *
     * @param userId identity of user. Interview passed by this user will be returned
     * @return list of interview passed by specific user
     */
    List<Interview> getUserInterviews(long userId);

    /**
     * return interview by id
     *
     * @param interviewId identity of interview which will be returned
     * @return interview with specific id
     */
    Interview getInterview(long interviewId);

    /**
     * return results of specific interview
     *
     * @param interviewId identity of interview. Interview results suitable for this interview will be returned
     * @return list of interview results for each topic of appraisal(appraisal task)
     */
    List<InterviewResult> getInterviewResults(long interviewId);

    List<Interview> getInterviews();

    void create(Interview interview);

    InterviewResult getInterviewResult(long id);
}
